博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实际开发中体会到的技巧(连载)
阅读量:4053 次
发布时间:2019-05-25

本文共 14109 字,大约阅读时间需要 47 分钟。

学会看错误日志,在那里面录找错误的原因(不要害怕它,看到它应该感到高兴)

注意是否缺少jar包,jar包版本是否正确,jar包是否冲突

 

 

 

>>1.页面的高度设置死了,页面要添加的信息太多,有两种方法解决:

方法一:设置悬浮页面,点击某个按钮,会弹出一个页面,信息完成后点保存即可
方法二:在同一个页面,每一小块设置一个按钮用来展开和收缩此模块

>>2.页面的宽度设置死了,如果信息太长的话,可以用一个js方法把信息截取掉,只让它显示一部分

>>3.html不能直接获取Session和url参数,一般都是用js来获取..js可以用location.href得到地址栏,然后split("?")得到参数字符串,再以&分割和=分隔得到键值集合,这是获取url参数,.获取session只有ajax去服务器调用了,因为你不可能把session的值通过url传过来的

>>4.在js中通过id获得对应页面上的对象值,并可以操作它

  var app = $("#appName").val();
  appId = "1::" + app;
  var rootAppGrpId = getRootGroup(appId);
  var root = rootAppGrpId.split("::");
  document.getElementById("rootAppGrpName").value = root[1];
  
在页面上传递一个hidden参数:
<input type="hidden" name="rootAppGrpName" id="rootAppGrpName" value=""/>

用jquery在前台改变值:

$("#des_id_${status.count}").text('${business.des}');

>>5.

<input type="hidden" name="serviceName" id="serviceName" value="<%=service.name %>"/>

<%=service.name %>
这样前台显示的是一个只读的名字,但在后台要获取此值(serviceName),所以要利用一个hidden把serviceName隐式传递运去。

>>6.

在html代码中:
<div id="chance_search_div"></div>
在js函数里控制此div的显示与隐藏:
$("#chance_search_div").hide();
$("#chance_search_div").show();

>>7.js中获取外部参数有两种方式:

第一种:通过函数传参(以前认为只有这一种)
第二种:利用jquery方法,通过id获得值
例如:var app = $("#appName").val();
直接获得对应JSP文件中id为appName的值

>>8.SVN解决冲突:先把本地文件备份,然后从服务器更新到本地,在更新后的文件上做修改(利用前面的备份),最后再把修改后的提交到服务器。

注意这个问题:现在从服务器上检出到本地,而服务器上的代码又更改后并不会报本地与服务器不同步错误,因为本地的代码跟服务器上相同版本号的代码是一致的,所以注意,相互比较必须在同一版本号下。

>>9.如何刷新当前页面?如何在当前页面中读取iframe里的body代码?
window.location.reload()  
var oIframeBody = document.frames( "sYourFrameId ").document.body;

>>10.!("".equals(appGrpName))    if(null == obj)

>>11.web编程中每个表单都有相应的提交按钮,swing编程中类似,每个提交数据的panel也必须有一个提交按钮

>>12.String和byte[] 之间的转换?

String转换成byte[]:

byte[] bytearray = str.getBytes();

byte[]转换成String:

String str = new String(bytearray);

在这里要注意new String()和String.valueOf()的区别。

>>13.数据库中不要用具有实际意义的字段作主键!

>>14.本地的MySql客户端Navigat导出的脚本没有数据库名,从别处导入相同数据库名的脚本时,要先把本地同名数据库删掉后,重新打开Navigat,再重新建一个同名的数据库,在新建的数据库中执行脚本就可以了。注意:一定要重启Navigat

>>15.MyEclipse里面的项目突然变的响应很慢很慢,原来是因为MyEclipse里面打开的项目太多的缘故,只要把不相干的项目都close project就OK了。

>>16.验证两次输入密码是否一致:

function chekPasswd(){ if($("#password").val()!=$("#password1").val()){  alert("两次输入的密码不一样。");  $("#password1").val("");  $("#password1").focus();  return false; }}

 

>>17.当鼠标指向目标的时候变成手的形状:

style="cursor:pointer;"

加上上面这一行样式代码即可。

设计css样式要注意浏览器兼容问题,下面这段句代码只能在IE浏览器上才能实现,在FireFox不行,上面是通用的

style="cursor:hand;"

 

关于兼容问是,参照另外一篇文章:

 

居中对齐:

style="text-align: left;"

显示到顶端:

style="vertical-align: top;"

 

>>18.有时候 $("userId").val()会得不到值,找到N久才发现是id的问题,把id由userId改成userId_s即可,如下所示:

if($("#userId_s").val().trim()==""){		alert("请输入职工编号。");		$("#userId_s").val("");		$("#userId_s").focus();		return false;	}

 >>19.j2se程序中得到当前项目的绝对路径的方法:

String path = System.getProperty("framework.conf", System.getProperty("user.dir") + \\config);

获得值为:

C:\Documents and Settings\dashan.yin\workspace\timerworker\config

C:\Documents and Settings\dashan.yin\workspace\为当前项目存储的目录,timerworker为当前项目名称,config为最后填加的目录

 >>20.**** cannot be found. Please check the location and try again 在myeclipse中打开某个文件

修改某个文件时,总是弹出一个窗口提示上述信息,其实也很好解决:

在编辑器界面,右键点击要打开的页面,选择Open with->MyEclipse JSP Editors即可

 

 >>21.项目中图片路径,文件路径,都要使用绝对路径,不然会发生找不到的情况。

 

>>22.a:link,a:visited,a:hover,a:active 分别是什么意思?

link:连接平常的状态 active:连接被按下的时候 visited:连接被访问过之后 hover:鼠标放到连接上的时候

具体用法:

a:hover { background:url(${contextPath }/images/frame/menu_list.jpg) repeat-x; }
a:active { background:url(${contextPath }/images/frame/menu_list.jpg) repeat-x; }

hover和a:visited书写顺序的重要性
今天在用a:hover属性的时候发现一个奇怪的问题,同一个页面里面有些链接的a:hover效果不能正常表现出来。链接的代码是一样,没有使用其它样式固定,搞的我莫名其妙。还以为是某个标签没有关闭,但是页面比较长,检查起来又嫌累,但是想来想去找不到其它原因,索性把浏览器一关,做别的事情去了。
重新打开这个页面的时候,突然发现那个链接的a:hover效果又出来了。我想了一下,点了那个链接,然后回过头再点,果然又没了。连忙检查css文档,发现a:hover属性写在了visited之前,改写到之后,重试,ok!
以前看书的时候注意到css中关于链接表现的书写有提示说各属性顺序不能颠倒,一直没有注意,写的时候通常都很随意。现在看来不能这个顺序还是很重要的。
css中关于超链接的四个属性一般正常顺序为:link,visited,hover,active,即

a:link a:visited a:hovera:active

>>23.sping中注入的配置

property的name的值是在UserAction.java文件public class UserAction extends BaseDispatchAction { private UserService userService; private StatisticsService statisticsService; public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } 里面的userServicebean = "UserService"中的UserService是相应的bean的id值,id值为UserService,则这个就是UserService,若id的值为userService,则这个值就为userService

>>24.有时候设了断点后,一执行就跳到系统文件里面去了,这时候可以把断点设的再深入一点,设到最底层,设到你最想看到数据的方法里面。

这个方法设个断点,下一个方法又设一个断点,这样执行向右的箭头时,会执行到下一个断点,而不是一步一步的执行,这样可以迅速把上一个方法执行完查看结果。

>>25.清空List:

userList.clear();

>>26.用js拼接select的option

var index=0;    function change(){    	if(index>0) {    		return;    	}			var content = "1#2#3#4#5";	var arr = content.split("#");	var childStr = "";	if(arr.length>0){		for(var i=0;i
" + arr[i] + ""; } } $("#IDCName").html(childStr); index++; return; }

解发动作:

																IDC 																															

>>27.改变form的action,两次改变发送两次请求

function sendRetrieve(thisForm, reportDiv, listDiv) {		thisForm.action = "${contextPath }/statisticsAction.do?method=viewStatusStatisticsReport";		submitForm(thisForm, reportDiv);		thisForm.action = "${contextPath }/statisticsAction.do?method=statusStatistics";		submitForm(thisForm, listDiv);			}

 

>>28.程序中获得系统的当前时间(毫秒数),用来计算某段程序的执行所花费的时间:

System.currentTimeMillis();

>>29.让某一列默认不显示:

主要代码:

style="DISPLAY: none"

测试实例:

企业安全
信息安全管理
安全审计
网站安全

 

>>30. 不能被隐藏掉的域

${status.count }
${varStatisticsResultBean.value }
${varStatisticsResultBean.ssize }
${varStatisticsResultBean.ssize_rate }%
${varStatisticsResultBean.count }
${varStatisticsResultBean.count_rate }%

>>31.今天遇到了一个问题

List list = null;

List list = [null];

以及

List list = []

表示不同的意思。

>>32.Myeclipse中同一个项目有太多的样板,断点调试这一个项目的时候,有可能跑到另外一个项目中去,这个问题也很好解决,把另外一个项目关闭就行了。

>>33.修改生成的报表图片存放的路径,改下这句代码就行了,以前IMAGES_HOME为空字符串,不过要注意,要重启Tomcat,有时候就是这样,做了修改,访问的时候页面上却没有变化,感觉改错了,其实很大可能上是没有刷新,这时候不访试着重启下浏览器,重启下服务器。

 

 >>34.开发好的项目往服务器上部署的时候,如果这时候数据库和打包好的项目位于同一个服务器上,则项目中的连接数据库的配置中不能写服务器的IP地址,要写成localhost

具体还不知道为什么,但写成IP的时候通不过。

 

>>35.操作数据库的程序用到的jar包都要重新放到myeclipse运行环境里面。

>>36.JSP文件中引入实体类文件有两种方式:

第一种:

一起引入,各个类文件之间用逗号隔开,最后可以用分号,也可以不用,如下所示:

<%@ page import="java.util.*, com.autonavi.monitor.util.ConvertUtil"%>

第二种:

单个引入,但每个类的后面不能以分号结尾,要什么都不写,当然,最后一个类可以用分号结尾。如下所示:

<%@ page import="com.autonavi.monitor.model.*"%><%@page import="com.autonavi.download.bean.ConfIDC"%><%@page import="com.autonavi.download.bean.ConfChannel"%><%@page import="com.autonavi.download.service.ServiceCanterImp"%><%@page import="com.autonavi.download.service.inter.ServiceCanter"%>

>>37.动态改变img标签的src属性

js代码:

function changeBandWidthImg(url) { 		var bandwidthimg = document.getElementById("bandwidthimg"); 		bandwidthimg.src=url;	}		function changeLogImg(url) { 		var logimg = document.getElementById("logimg"); 		logimg.src=url;	}

jsp代码:

																																			

>>38.常用的css属性

字体样式:

font-size: 18px;font-weight: bold;

居中显示:

style="text-align:center;"

显示到顶端:

style="vertical-align: top;"

 

>>39.非空判断

if(queryId.equals("search") || queryId == null)和反过来表示不同的意思,||有短路功能

可以这样写:

if(queryId == null || queryId.equals("search") )
也可以这样写:

if(("search").equals(queryId) || queryId == null)

 

>>40.全局变量的位置在this里面,断点调试的可以看清楚:

>>41.获取iframe的顶级frame

function getRootFrame(){		var root = window;		//获取父框架		var father = root.parent;     	while(father != root){     		root = father;     		father = root.parent;     	}     	return root;	}

iframe的顶级frame有个特点,那就是:

若此window为顶起frame,则window.parent 等于 window

 

>>42.MyEclipse有时候会出现一些奇怪的问题,这时候主要的解决方法就是重启,有时候还会报错,这时候可以试一下重新编译这个项目:

重新编译项目的方法:MyEclipse中protect->clean,然后选中指定的项目,点击确定就行了。 如图所示:

 

>>43.计算两个时间相差几天

/**

  * 计算两个时间相差几天
  *
  * @param start
  * @param end
  * @return
  */
 public static long caculateDay(long start, long end) {
  long length = end - start;
  long count = length / (24 * 60 * 60 * 1000);
  return (double) length / (24 * 60 * 60 * 1000) > length
      / (24 * 60 * 60 * 1000) ? count + 1 : count;
 }、

 

>>44.电脑连接多媒体切换界面的方法:功能键Fn + F8

 

>>45.监听键盘事件,当按Enter键时提交相应的表单。

 >>46.

function chekPasswd(){

 if($("#password").val()!=$("#password1").val()){
  alert("两次输入的密码不一样。");
  $("#password1").val("");
  //$("#password1").focus();
  return false;
 }
}

修改密码时验证两次输入的密码是否相同,注意一定要把$("#password1").focus();注释掉,不然会不停的弹出窗口提示

 

>>47.Set<Channel>转化成List<Channel>

List
channelList = new ArrayList
(); //当登录用户为超级管理员时设置获得所有的频道 if(user.getActor() == Constants.USER_ACTOR_SYS_ADMIN) { channelList = getChannelList(); } else { Channel channel = null; Set
channelSet = user.getChannels(); Iterator
iterator = channelSet.iterator(); while(iterator.hasNext()) { channel = (Channel)iterator.next(); channelList.add(channel); } }

>>48.Set,List,Map的区别和联系?

 Set —— 其中的值不允许重复,无序的数据结构

List —— 其中的值允许重复,因为其为有序的数据结构
Map —— 成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)

 

Set不可重复,所以可以用它来排重,但存在一个问题,因为它无序,所以顺序会被打乱,可以用LinkedHashSet解决乱序的问题

List有序,所以如果查询出的结果要排序,那采用List

实际上java集合里的Set都是基于Map的,set相当于map里所有的key指向同一个value。

 

>>49.从SVN上检出项目后只在项目名上出现一个红叉,其他地方都没有,说明肯定跟jar包的引入有关系,可以右键点击该项目名->Build Path -> Config Build Path -> 然后在弹出的对话框中选择第三个选项卡Libraries,看看这里面有没有什么jar包找不到路径,如果实在看不出来问题,就把jdk的jar包删掉再重新加载进去。一般经过上述步骤问题基本能够得到解决。

 删掉jdk系统jar包的方法,选中JRE System Library  [ jdk1.6.0_06 ] ,然后点击右边的remove按钮即可。

重新加载jdk的系统jar包,点击Add Library按钮,弹出如下的对话框:

选中JRE System Library,点击Next,弹出如下对话框:

选择第一个:Workspace default JRE (jdk1.6.0_06)后点Finish即可。

 

>>50.怎样在word中插入文档
插入——对象——由文件创建,选择你需要的文件插入即可。
插入的时候可以选择插入的模式,是把文档的内容插入当前文档还是只在当前文档中保留文档的图标
保留图标模式下,双击图标可以打开链接的文档。

 

>>51.功能键Fn+方向键可以调节笔记本电脑屏幕亮度。

>>52.firefox中安装firebug插件的方法:
Firebug是与Firefox集成的,所以我们首先要安装的事Firefox浏览器。安装好浏览器后,打开浏览器,选择菜单栏上的“工具”菜单,选择“附加软件”,在弹出窗口中点击右下角的“获取扩展”链接。在打开的页面的search输入框中输入“firebug”。等搜索结果出来后点击Firbug链接(图1-1红色圈住部分)进入Firebug的下载安装页面。下面按提示操作即可。

 

>>53.诺基亚PC套件安装之后不小心把后缀为.JAR的文件弄成压缩的图标了 安装PC套件之后,显示的是诺基亚那个带有十字的图标,而且点鼠标右键还有一个:诺基亚安装程序。。。什么后。名字没记住。后来用打开压缩文件的方式打开时,电脑提示:是否要把应用程序安装到诺基亚。点了确定之后,手机里的。JAR为后缀的文件图标都变成压缩文件的图标了。用还是可以用。但是想知道怎么弄回来。

上边的操作都是在手机连接电脑之后,在电脑上操作的。问题补充:
在电脑里试过这样,但是没用,在手机里右键只有打开,没有属性那个选项。
       最佳答案 电脑上:工具——文件夹选项——文件类型,在里面找到jar,高级里面可以改图标。要记得顺序,先改图标再改打开方式,不然图标是不会变

 

 >>54.HTML5支持的浏览器

 

>>55.修改myeclipse字体大小

1、jsp字体

英文版的MyEclipse 5.5.1GA,选择Windows菜单下的Preferences子菜单,在打开的Preferences对话框里左边有一个General项,展开它,

它下面还有个Appearence,选择其中的“Colors and Fonts”,然后在右边列表框里找到Basic项,里面的“Text Font”即是针对文本编辑

器的字体进行设置的地方。直接在JSP文件编辑器上点击右键,然后选择属性,就可以设置了

 

2、java代码字体

英文版的MyEclipse 5.5.1GA,选择Windows菜单下的Preferences子菜单,在打开的Preferences对话框里左边有一个General项,展开它,

它下面还有个Appearence,选择其中的“Colors and Fonts”,然后在右边列表框里找到java项,里面的“Java Editor Text Font”即是

针对文本编辑器的字体进行设置的地方。

 

 

>>56.用jquery清空或修改文本框的内容

jquery 用jquery给文本框赋值,清空文本框

$(document).ready(function(){ 
 $("#resetbtn").click(function(){
  $("#user_id").val("");//清空
  $("#realname").val("黑色头发");//赋值
 });
}); 

 

>>57.linux中定时执行任务:

crontab -u root -e
*/1 * * * * echo "Good morning."  >> /tmp/testecho.txt

 

>>58.js去空格,替换,查看类型
  • <script type="text/javascript">
    //删除左右两端的空格
    function trim(str)
    {
         return str.replace(/(^\s*)|(\s*$)/g,"");
    }
    //删除左边的空格
    function ltrim(str)
    {
         return str.replace(/(^\s*)/g,"");
    }
    //删除右边的空格
    function rtrim(str)
    {
         return str.replace(/(\s*$)/g,"");
    }
    </script>
<script type="text/javascript">
      
//alert("{
{ request.session.authority_list_button }}");
      
var 
authority_str = 
"{
{ request.session.authority_list_button }}"
;
      
//去掉字符串两边的中括号
      
authority_str = authority_str.substring(1, authority_str.length-1)
      
var 
reg1 = 
new 
RegExp(
"u&#39;"
,
"g"
); 
//创建正则RegExp对象
      
var 
reg2 = 
new 
RegExp(
"&#39;"
,
"g"
); 
//创建正则RegExp对象
      
authority_str = authority_str.replace(reg1, 
""
);
      authority_str = authority_str.replace(reg2, 
""
);
      
//alert(authority_str);
      
var 
authority_array = authority_str.split(
","
);
      
//alert(typeof(authority_array));
      
      
var 
flag = isSuperUser(authority_array);
      
if
(flag) 
{
            
navTab.openTab(
"accountindex"
"{% url accounts_index %}"
{
title:
"用户管理"
}
);
      
} else {
            
navTab.openTab(
"accountindex"
"{% url accounts_info user.id %}"
{
title:
"用户信息"
}
);
      
}
      
      function 
isSuperUser(authority_array) 
{
            for
(
var 
i=0; i<authority_array.length; i++) 
{
                  if
(authority_array[i].replace(/(^\s*)|(\s*$)/g, 
""
) == 
"accountsuperuser"
{
                        return true;
                  
}
            }
            return false
;
      
}
</
script
>
查看类型用typeof函数。

>>59.使用JQuery获取select、radio、checkbox的值和操作技巧

以下总结为自己个人的使用总结,结合在网上查的资料以及实际的使用,总结出来 会持续更新…… 也希望大家补充
一、select篇
  1. 1,获取select被选中的值
  2. $("#select_id option:selected").val() ;
  3. 2,获取select被选中的文本
  4. $("#select_id option:selected").text() ;
  5. 3,设置Select的Value值为4的项选中
  6. $("#select_id ").val(4);  
复制代码
二、radio篇
  1. 1,设置name为radio_name的radion的value为**为选中状态
  2. $("input[name='radio_name'][value='要中Radio的Value值']").attr("checked",true);
  3. 2,获取被选中的radio的值
  4. $("input[name='cycle']:checked").val();
复制代码
三、checkbox篇
  1. 1,获取name为directlyunder 被选中的checkbox的value值[/backcolor
  2. $("input[name='directlyunder']:checked").val();
  3. 2,jQuery--checkbox全选/取消全选用JavaScript使页面上的一组checkbox全选/取消全选
  4. <input type="checkbox" name="chk_list" id="chk_list_1" value="1" />1
  5. <input type="checkbox" name="chk_list" id="chk_list_2" value="2" />2
  6. <input type="checkbox" name="chk_list" id="chk_list_3" value="3" />3
  7. <input type="checkbox" name="chk_list" id="chk_list_4" value="4" />4
  8. <input type="checkbox" name="chk_all" id="chk_all" />全选/取消全选
  9. <script type="text/javascript">
  10. $("#chk_all").click(function() {  $("input[name='chk_list']").attr("checked",$(this).attr("checked"));});
  11. </script>
  12. 3,jQuery.attr  获取/设置对象的属性值,如:
  13. $("input[name='chk_list']").attr("checked");     //读取所有name为'chk_list'对象的状态(是否选中)
  14. $("input[name='chk_list']").attr("checked",true);      //设置所有name为'chk_list'对象的checked为true
复制代码

 

转载地址:http://fotci.baihongyu.com/

你可能感兴趣的文章
[转]打印质数的各种算法
查看>>
[转]javascript with延伸的作用域是只读的吗?
查看>>
php的autoload与global
查看>>
IE不支持option的display:none属性
查看>>
[分享]mysql内置用于字符串型ip地址和整数型ip地址转换函数
查看>>
TableDnd(JQuery表格拖拽控件)应用进阶
查看>>
[转]开源中最好的Web开发的资源
查看>>
Docker上部署SpringBoot项目并推送镜像到Docker Hub上---以MacOS为例
查看>>
bibtex I was expecting a `,‘ or a `}‘ 问题解决
查看>>
sql server中各类范式的理解
查看>>
进程同步
查看>>
Python中列表元素删除
查看>>
二分查找与递归式二分查找
查看>>
在Navicat for MySQL中修改表的编码格式
查看>>
【RPC】一步一步实现基于netty+zookeeper的RPC框架(四)
查看>>
补充另一版ArrayList的初始化过程
查看>>
java接口不能实例化原因浅谈
查看>>
Https加密及攻防
查看>>
Java生成随机不重复推广码邀请码
查看>>
Java8 Lambda表达式介绍
查看>>